home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / rfkill.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  3KB  |  93 lines

  1. #ifndef __RFKILL_H
  2. #define __RFKILL_H
  3.  
  4. /*
  5.  * Copyright (C) 2006 - 2007 Ivo van Doorn
  6.  * Copyright (C) 2007 Dmitry Torokhov
  7.  * Copyright 2009 Johannes Berg <johannes@sipsolutions.net>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the
  21.  * Free Software Foundation, Inc.,
  22.  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  23.  */
  24.  
  25. #include <linux/types.h>
  26.  
  27. /* define userspace visible states */
  28. #define RFKILL_STATE_SOFT_BLOCKED    0
  29. #define RFKILL_STATE_UNBLOCKED        1
  30. #define RFKILL_STATE_HARD_BLOCKED    2
  31.  
  32. /**
  33.  * enum rfkill_type - type of rfkill switch.
  34.  *
  35.  * @RFKILL_TYPE_ALL: toggles all switches (userspace only)
  36.  * @RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device.
  37.  * @RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device.
  38.  * @RFKILL_TYPE_UWB: switch is on a ultra wideband device.
  39.  * @RFKILL_TYPE_WIMAX: switch is on a WiMAX device.
  40.  * @RFKILL_TYPE_WWAN: switch is on a wireless WAN device.
  41.  * @NUM_RFKILL_TYPES: number of defined rfkill types
  42.  */
  43. enum rfkill_type {
  44.     RFKILL_TYPE_ALL = 0,
  45.     RFKILL_TYPE_WLAN,
  46.     RFKILL_TYPE_BLUETOOTH,
  47.     RFKILL_TYPE_UWB,
  48.     RFKILL_TYPE_WIMAX,
  49.     RFKILL_TYPE_WWAN,
  50.     NUM_RFKILL_TYPES,
  51. };
  52.  
  53. /**
  54.  * enum rfkill_operation - operation types
  55.  * @RFKILL_OP_ADD: a device was added
  56.  * @RFKILL_OP_DEL: a device was removed
  57.  * @RFKILL_OP_CHANGE: a device's state changed -- userspace changes one device
  58.  * @RFKILL_OP_CHANGE_ALL: userspace changes all devices (of a type, or all)
  59.  */
  60. enum rfkill_operation {
  61.     RFKILL_OP_ADD = 0,
  62.     RFKILL_OP_DEL,
  63.     RFKILL_OP_CHANGE,
  64.     RFKILL_OP_CHANGE_ALL,
  65. };
  66.  
  67. /**
  68.  * struct rfkill_event - events for userspace on /dev/rfkill
  69.  * @idx: index of dev rfkill
  70.  * @type: type of the rfkill struct
  71.  * @op: operation code
  72.  * @hard: hard state (0/1)
  73.  * @soft: soft state (0/1)
  74.  *
  75.  * Structure used for userspace communication on /dev/rfkill,
  76.  * used for events from the kernel and control to the kernel.
  77.  */
  78. struct rfkill_event {
  79.     __u32 idx;
  80.     __u8  type;
  81.     __u8  op;
  82.     __u8  soft, hard;
  83. } __packed;
  84.  
  85. /* ioctl for turning off rfkill-input (if present) */
  86. #define RFKILL_IOC_MAGIC    'R'
  87. #define RFKILL_IOC_NOINPUT    1
  88. #define RFKILL_IOCTL_NOINPUT    _IO(RFKILL_IOC_MAGIC, RFKILL_IOC_NOINPUT)
  89.  
  90. /* and that's all userspace gets */
  91.  
  92. #endif /* RFKILL_H */
  93.